package cn.marinda.resturants.service;

import cn.marinda.resturants.entity.Meal;
import cn.marinda.resturants.global.Pages;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.context.annotation.Primary;

import java.math.BigDecimal;
import java.util.List;

/** 菜品服务层，用于处理相关信息
 *
 */
public interface MealService extends IService<Meal> {

    /** 分页查询meal
     *
     */
    IPage<Meal> selectPages(Pages<?> pages);

    /** 获取所有菜品数据
     *
     * @return 列表菜品
     */
    List<Meal> queryList();

    /** 指定uid查询
     *
     * @param uid uid
     * @return 菜品
     */
    Meal selectById(String uid);

    /** 模糊查询名字获取菜品列表
     *
     * @param name 名称
     * @return 菜品列表
     */

    List<Meal> selectLikeByName(String name);

    /** 查询指定类型菜品列表
     *
     * @param type 类型
     * @return 菜品列表
     */
    List<Meal> selectTypeQueryList(String type);

    /** 查询价格区间列表
     *
     * @param startPrice 开始价格
     * @param endPrice 结束价格
     * @return
     */
    List<Meal> selectPriceJoint(BigDecimal startPrice, BigDecimal endPrice);

    /** 通过uid查询今日菜品数量
     *
     * @param uid 菜品uid
     * @return 数量
     */
    int selectDayNumber(String uid);

    /** 修改餐品数据 乐观锁
     * @param meal 餐品
     * @return 删除是否成功
     */
    boolean updateByUid(Meal meal);

    /** 删除餐品
     *
     * @param uid uid
     * @return 删除是否成功
     */
    boolean deleteByUid(String uid);

    /** 添加餐品
     *
     * @param meal
     * @return 是否成功
     *
     */
    boolean addMeal(Meal meal);
}
